package com.wangsh.usersCenter.system.service;

import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSONObject;
import com.wangsh.usersCenter.common.pojo.ApiResponse;
import com.wangsh.usersCenter.common.util.PageInfoUtil;
import com.wangsh.usersCenter.system.pojo.ACate;
import com.wangsh.usersCenter.system.pojo.ARegion;
import com.wangsh.usersCenter.system.pojo.ASysIp;
import com.wangsh.usersCenter.system.pojo.ASysLog;
import com.wangsh.usersCenter.system.pojo.ASysPro;

/**
 * 系统模块的主要service
 * 
 * @author wangshh
 * 
 */
public interface ISystemDbService
{
	/**
	 * 重新加载,或者初始化
	 */
	ApiResponse<Object> reloadSystem() ;
	
	/*----- 全国地区模块管理开始 -----*/
	/**
	 * 添加一条全国地区
	 * 
	 * @param region
	 * @return
	 */
	ApiResponse<Object> saveOneRegionService(ARegion region);

	/**
	 * 更新一条全国地区
	 * 
	 * @param region
	 * @return
	 */
	ApiResponse<Object> updateOneRegionService(ARegion region);

	/**
	 * 删除一条全国地区
	 * 
	 * @param region
	 * @return
	 */
	ApiResponse<Object> deleteOneRegionService(Map<String, Object> condMap);

	/**
	 * 查询多条全国地区
	 * 
	 * @param pageInfo
	 * @param type
	 * @param condMap
	 * @return
	 */
	ApiResponse<ARegion> findCondListRegionService(PageInfoUtil pageInfoUtil , Map<String, Object> condMap);

	/**
	 * 查询一条全国地区
	 * 
	 * @param type
	 * @param condMap
	 * @return
	 */
	ApiResponse<ARegion> findOneRegionService(Map<String, Object> condMap);
	
	/**
	 * 根据当前地区查询节点的字符串描述
	 * 一级节点-->二级节点-->三级节点
	 * @param type
	 * @param regionid
	 * @return
	 */
	ApiResponse<ARegion> findTreeRegionService(ARegion region);
	
	/*获取地区所有的子节点一直到没有后代*/
	void getRegionChildrenList(List<ARegion> regionList, ARegion region);
	/*----- 全国地区模块管理结束 -----*/
	
	/**
	 * 添加一条日志
	 * 
	 * @param region
	 * @return
	 */
	ApiResponse<Object> saveOneLogService(ASysLog log);

	/**
	 * 更新一条日志
	 * 
	 * @param region
	 * @return
	 */
	ApiResponse<Object> updateOneLogService(ASysLog log);

	/**
	 * 删除一条日志
	 * 
	 * @param region
	 * @return
	 */
	ApiResponse<Object> deleteOneLogService(Map<String, Object> condMap);

	/**
	 * 查询多条日志
	 * 
	 * @param pageInfo
	 * @param type
	 * @param condMap
	 * @return
	 */
	ApiResponse<ASysLog> findCondListLogService(PageInfoUtil pageInfoUtil , Map<String, Object> condMap);

	/**
	 * 查询一条日志
	 * 
	 * @param type
	 * @param condMap
	 * @return
	 */
	ApiResponse<ASysLog> findOneLogService(Map<String, Object> condMap);
	/*----- 日志结束 -----*/
	
	/*----- 全局分类开始 -----*/	
	
	/**
	 * 添加一条全局分类
	 * 
	 * @param cate
	 * @return
	 */
	ApiResponse<Object> saveOneCateService(ACate cate);

	/**
	 * 更新一条全局分类
	 * 
	 * @param cate
	 * @return
	 */
	ApiResponse<Object> updateOneCateService(ACate cate);

	/**
	 * 删除一条全局分类
	 * 
	 * @param cate
	 * @return
	 */
	ApiResponse<Object> deleteOneCateService(Map<String, Object> condMap);

	/**
	 * 查询多条全局分类
	 * 
	 * @param pageInfo
	 * @param type
	 * @param condMap
	 * @return
	 */
	ApiResponse<ACate> findCondListCateService(PageInfoUtil pageInfoUtil , Map<String, Object> condMap);

	/**
	 * 查询一条全局分类
	 * 
	 * @param type
	 * @param condMap
	 * @return
	 */
	ApiResponse<ACate> findOneCateService(Map<String, Object> condMap);
	/**
	 * 根据当前地区查询节点的字符串描述
	 * 一级节点-->二级节点-->三级节点
	 * @param type
	 * @param regionid
	 * @return
	 */
	ApiResponse<ACate> findTreeCateService(ACate cate);
	/*----- 全局分类结束 -----*/
	/*----- 系统配置开始 -----*/
	/**
	 * 添加一条系统配置
	 * 
	 * @param sysPro
	 * @return
	 */
	ApiResponse<Object> saveOneSysProService(ASysPro sysPro);

	/**
	 * 更新一条系统配置
	 * 
	 * @param sysPro
	 * @return
	 */
	ApiResponse<Object> updateOneSysProService(ASysPro sysPro);

	/**
	 * 删除一条系统配置
	 * 
	 * @param condMap
	 * @return
	 */
	ApiResponse<Object> deleteOneSysProService(Map<String, Object> condMap);

	/**
	 * 查询多条系统配置
	 * 
	 * @param pageInfo
	 * @param type
	 * @param condMap
	 * @return
	 */
	ApiResponse<ASysPro> findCondListSysProService(PageInfoUtil pageInfoUtil , Map<String, Object> condMap);

	/**
	 * 查询一条系统配置
	 * 
	 * @param type
	 * @param condMap
	 * @return
	 */
	ApiResponse<ASysPro> findOneSysProService(Map<String, Object> condMap);
	/*----- 系统配置結束 -----*/
	/* == ip操作开始 == */
	/**
	 * 添加一条系统配置
	 * 
	 * @param SysPro
	 * @return
	 */
	ApiResponse<Object> saveOneSysIpService(ASysIp aSysIp);

	/**
	 * 更新一条系统配置
	 * 
	 * @param SysPro
	 * @return
	 */
	ApiResponse<Object> updateOneSysIpService(ASysIp aSysIp);

	/**
	 * 删除一条系统配置
	 * 
	 * @param SysPro
	 * @return
	 */
	ApiResponse<Object> deleteOneSysIpService(Map<String, Object> condMap);

	/**
	 * 查询多条系统配置
	 * 
	 * @param pageInfo
	 * @param type
	 * @param condMap
	 * @return
	 */
	ApiResponse<ASysIp> findCondListSysIpService(PageInfoUtil pageInfoUtil, Map<String, Object> condMap);

	/**
	 * 查询一条系统配置
	 * 
	 * @param type
	 * @param condMap
	 * @return
	 */
	ApiResponse<ASysIp> findOneSysIpService(Map<String, Object> condMap);
	/* == ip操作结束 == */
}
